package com.hellobike.haxing.modules.wms.facade;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.hellobike.haxing.modules.wms.dto.AsnHeaderDto;
import com.hellobike.haxing.modules.wms.dto.SkuDto;
import com.hellobike.haxing.modules.wms.dto.StockTaskDto;
import com.hellobike.haxing.modules.wms.entity.AsnDetail;
import com.hellobike.haxing.modules.wms.entity.AsnHeader;
import com.hellobike.haxing.modules.wms.entity.StockTask;
import com.hellobike.haxing.modules.wms.exception.WmsServiceException;

import java.util.List;

public interface WmsReceiveFacade {


    public String addAsnByPms(AsnHeader asnHeader, List<AsnDetail> asnDetailList, Long warehouseId, Integer userId) throws WmsServiceException;


    public String addAsnByHand(AsnHeader asnHeader, List<AsnDetail> asnDetailList, Long warehouseId, Integer userId) throws WmsServiceException;


    public String addAsnByReturnExchange(AsnHeader asnHeader, List<AsnDetail> asnDetailList, Long warehouseId, Integer userId) throws WmsServiceException;


    public void receiveAsn(List<AsnDetail> asnDetailList, Long asnHeaderId, String opName, Long warehouseId, Integer userId) throws WmsServiceException;


    public void publishDocPutaway(List<Long> taskIds, Long warehouseId, Integer userId) throws WmsServiceException;


    public void confirmPutaway(List<StockTaskDto> taskList, Long docPutawayId, String opName, String note, Long warehouseId, Integer userId) throws WmsServiceException;

    AsnHeaderDto queryAsnInfo(Long headerId, Long warehouseId) throws WmsServiceException;

    List<SkuDto> querySkuByBarCode(String barCode) throws WmsServiceException;

    List<StockTaskDto> queryTaskInfoByPutawayId(Long putawayId) throws WmsServiceException;


    IPage<StockTaskDto> wrapperStockTaskInfo(IPage<StockTask> pageList);
}
